package cn.myschool.java79.dao;

import cn.myschool.java79.entity.Student;
import cn.myschool.java79.pojo.Student2;
import cn.myschool.java79.util.StrUtil;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author oldliu
 * @since 1.0
 */
public interface StudentMapper {

    public int add(Student s);
    public int update(Student s);
    //按照姓名和微信号 模糊查找
    public List<Student> search1(@Param("sname") String name,@Param("wechat") String wechat);

    /**
     * 对象只加上了 sname,qq,wechat
     * @param stu
     * 不合适
     * @return
     */
    public List<Student> search2(Student stu);
    //和 search2类似
    public List<Student> search3(Map stu);

    /**
     * 按照入学时间的区间查找
     * @param start
     * @param end
     * @return
     */
    public List<Student> search4(@Param("enterstart") Date start,@Param("enterend") Date end);

    //找出各个城市的学生数量
    public List<Map<String,Integer>> searctByCity();

    ///实现按照 按照 微信号,qq号,姓名,模糊查找学生的功能，加上分页
    public List<Student> search5(@Param("s")Student stu,@Param("pageNo")int pageNo,@Param("pageSize")int pageSize);
    public List<Student> search6(@Param("sname")String sname,@Param("qq")String qq,@Param("wechat")String wechat,@Param("pageNo")int pageNo,@Param("pageSize")int pageSize);
    //保留按照 按照 微信号,qq号,姓名,模糊查找学生总数
    public int search6Total(@Param("sname")String sname,@Param("qq")String qq,@Param("wechat")String wechat);

    public Student2 getWithExams(long stuno);
    //根据多个年级查找学生信息
    public List<Student> searchGrades(@Param("gids")long[] gradeid);
    //入学时间找，type=1找本月入学的，type=2找最近半年内的，3找最近一年的，其他条件，找入学时间是null的
    public List<Student> searchTyEnterDateType(@Param("type")int type);

    public List<Student> search18(@Param("sname")String sname,@Param("qq")String qq,@Param("wechat")String wechat);

    public List<Student> search9(@Param("ordrby") String orderby,@Param("cols") String...cols);

}
